package junior.util.config;

import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Map;

/**
 * @author WuBo
 * 
 */
public interface ConfigContext {
	
	void setProperty(String key, String value);
	
	void setVariable(String varName, String varValue);
	
	Map<String, String> getValues(String keyPrefix);
	
	String getString(String key);
	
	String getString(String key, String defaultValue);
	
	char getChar(String key);
	
	char getChar(String key, char defaultValue);
	
	Character getCharacter(String key, Character defaultValue);

	int getInt(String key);
	
	int getInt(String key, int defaultValue);
	
	Integer getInteger(String key, Integer defaultValue);
	
	BigInteger getBigInteger(String key);
	
	BigInteger getBigInteger(String key, BigInteger defaultValue);
	
	BigDecimal getBigDecimal(String key);
	
	BigDecimal getBigDecimal(String key, BigDecimal defaultValue);

	float getFloat(String key);
	
	float getFloat(String key, float defaultValue);
	
	Float getFloat(String key, Float defaultValue);

	double getDouble(String key);
	
	double getDouble(String key, double defaultValue);
	
	Double getDouble(String key, Double defaultValue);

	long getLong(String key);
	
	long getLong(String key, long defaultValue);
	
	Long getLong(String key, Long defaultValue);

	short getShort(String key);
	
	short getShort(String key, short defaultValue);
	
	Short getShort(String key, Short defaultValue);
	
	boolean getBoolean(String key);
	
	boolean getBoolean(String key, boolean defaultValue);
	
	Boolean getBoolean(String key, Boolean defaultValue);

}
